The streaming data over the Internet has become a popular way to view and consume media in modern society. In a typical system, a client computer sends a request to a server with the desired media to stream the data that makes up the media. In response, the server typically streams the data back to the client via the same transmission route the request was transmitted. For example, songs may be streamed to mobile devices over wireless networks and videos may be streamed to personal computers or other receivers via a high-speed Internet network such as a digital subscriber line (DSL), a cable modem or a T-1 network. As streaming data has become more popular, the load on the servers that actually stream data has increased significantly, which in turn has increased the bandwidth used by the servers to stream the data.
Servers are typically connected to multiple different computing networks, each of which being interconnected with other networks that together form accessible parts of the Internet. These networks and networks differ in their speed (bandwidth) and also in their cost. Some networks (sometimes referred to as “free-peer” networks or flat rate networks) are substantially free in that the operator of the server need only pay a small monthly flat rate subscriber fee and does not pay based on the amount of data transmitted via the network. Other networks charge by the amount of data transmitted over the network, in which case the cost of the network is a use-based cost.
For any given destination on the Internet for the streaming data, often there are multiple transmission routes via different networks between the server and the destination. However, typical servers do not take into account other possible transmission routes when streaming data back to a client on the Internet. The transmission route chosen for streaming the data is often the transmission route that the request for the data traveled to the server. In addition, modern server operators often have multiple servers located around the country and even the world. Currently, the selection of which server to actually serve the data is done solely based on the current load on each of the servers available, without taking into account the different costs associated with each server.